home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d27
/
mov2prd.arc
/
CPP4200.CLP
next >
Wrap
Text File
|
1991-12-04
|
4KB
|
105 lines
CPP4200: PGM PARM(&OBJ &OBJTYPE &TOLIB &OWNER &REPLACE +
&RTNAUT)
/* Move an object to production */
DCL VAR(&OBJ) TYPE(*CHAR) LEN(20)
DCL VAR(&OBJTYPE) TYPE(*CHAR) LEN(8)
DCL VAR(&TOLIB) TYPE(*CHAR) LEN(10)
DCL VAR(&REPLACE) TYPE(*LGL) LEN(1)
DCL VAR(&OWNER) TYPE(*CHAR) LEN(10)
DCL VAR(&RTNAUT) TYPE(*LGL) LEN(1)
DCL &EXISTS *LGL 1 VALUE('0')
DCL &TRUE *LGL 1 VALUE('1')
DCL &FALSE *LGL 1 VALUE('0')
DCL &MSGDTA *CHAR 128
DCL &MSGF *CHAR 10
DCL &MSGFLIB *CHAR 10
DCL &MSGMAX *DEC 3 VALUE(10) /* Max messages */
DCL &MSGCNT *DEC 3
DCL &MSGID *CHAR 7
DCL &MSGMRK *CHAR 4
DCL &MSGTYPE *CHAR 8
DCL &MSGRTN *CHAR 2
MONMSG MSGID(CPF0000) EXEC(GOTO RCVMSG)
CHKOBJ OBJ(%SST(&OBJ 1 10).%SST(&OBJ 11 10)) +
OBJTYPE(&OBJTYPE)
CHKOBJ OBJ(&TOLIB) OBJTYPE(*LIB)
CHKOBJ OBJ(%SST(&OBJ 1 10).&TOLIB) OBJTYPE(&OBJTYPE)
MONMSG MSGID(CPF0000) EXEC(GOTO CONTINUE)
IF (&REPLACE) DO
CHGVAR VAR(&EXISTS) VALUE(&TRUE)
ENDDO
ELSE DO
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Object +
already exists in TOLIB and RELPACE(*NO) +
was specified. Change REPLACE to +
REPLACE(*YES) or change object name') +
MSGTYPE(*DIAG)
GOTO RCVMSG
ENDDO
CONTINUE: /* Continue processing */
IF (&EXISTS) DO
CHKOBJ OBJ(%SST(&OBJ 01 10).QARCHIVE) +
OBJTYPE(&OBJTYPE)
MONMSG MSGID(CPF0000) EXEC(GOTO MOVE)
DLTOBJ OBJ(%SST(&OBJ 01 10).QARCHIVE) TYPE(&OBJTYPE)
MOVE: /* MOVE THE OBJECT TO THE ARCHIVE LIBRARY */
MOVOBJ OBJ(%SST(&OBJ 01 10).&TOLIB) +
OBJTYPE(&OBJTYPE) TOLIB(QARCHIVE)
ENDDO
PUT2PROD: /* Put the new object into production */
MOVOBJ OBJ(%SST(&OBJ 01 10).%SST(&OBJ 11 10)) +
OBJTYPE(&OBJTYPE) TOLIB(&TOLIB)
IF (&OWNER *EQ '*SAME') GOTO GRANT
CHGOBJOWN OBJ(%SST(&OBJ 01 10).&TOLIB) +
OBJTYPE(&OBJTYPE) NEWOWN(&OWNER)
GRANT: /* Grant object authority */
IF (&RTNAUT *AND &EXISTS) DO
GRTOBJAUT OBJ(%SST(&OBJ 01 10).&TOLIB) +
OBJTYPE(&OBJTYPE) REFOBJ(%SST(&OBJ 01 +
10).QARCHIVE)
ENDDO
GOTO ENDPGM
RCVMSG: /* Forward error messages to *PRV PGMSGQ */
CHGVAR VAR(&MSGCNT) VALUE(&MSGCNT + 1)
MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO ENDPGM)
IF (&MSGCNT *LE &MSGMAX) DO
RCVMSG MSGDTA(&MSGDTA) MSGID(&MSGID) +
RTNTYPE(&MSGRTN) MSGF(&MSGF) +
MSGFLIB(&MSGFLIB)
IF (&MSGID *EQ ' ') RETURN
IF (&MSGRTN *EQ '01') CHGVAR VAR(&MSGTYPE) +
VALUE('*COMP')
IF (&MSGRTN *EQ '02') CHGVAR VAR(&MSGTYPE) +
VALUE('*DIAG')
IF (&MSGRTN *EQ '04') CHGVAR VAR(&MSGTYPE) +
VALUE('*INFO')
IF (&MSGRTN *EQ '14') CHGVAR VAR(&MSGTYPE) +
VALUE('*NOTIFY')
IF (&MSGRTN *EQ '15') CHGVAR VAR(&MSGTYPE) +
VALUE('*ESCAPE')
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGF.&MSGFLIB) +
MSGDTA(&MSGDTA) TOPGMQ(*PRV) +
MSGTYPE(&MSGTYPE)
GOTO RCVMSG
ENDDO
ENDPGM: ENDPGM